- How to compile modules (a separate doc)
- Information about writing modules (a separate doc)
Below is a list of third-party modules for NGINX and NGINX Plus, created and maintained by members of the NGINX community. NGINX, Inc. does not provide support for these modules, so please reach out to each individual module developer for issues or help. For information on how to contribute a module to this list, see https://github.com/nginxinc/nginx-wiki.
For a list of officially supported modules from NGINX, Inc. and NGINX Plus Certified Modules from our partners, see https://www.nginx.com/products/nginx/modules.
For information on how to contribute a module to this list, see https://github.com/nginxinc/nginx-wiki.
Module | Description | Repository |
---|---|---|
accept_language |
Accept-Language header parser | giom/nginx_accept_language_module |
AFCGI | Asynchronous/multiplexing FastCGI for NGINX | rsms/afcgi |
Akamai G2O | Restricts access to content to Akamai edge servers using G2O headers | kaltura/nginx_mod_akamai_g2o |
Array Var | Add support for array variables to NGINX config files | openresty/array-var-nginx-module |
audio_track |
Generate audio track for HTTP Live Streaming (HLS) streams on the fly | flavioribeiro/nginx-audio-track-for-hls-module |
auth_digest |
HTTP Digest Authentication | atomx/nginx-http-auth-digest |
PAM Authentication | HTTP Basic Authentication using PAM | sto/ngx_http_auth_pam_module |
Request Authentication | Allows authorization based on subrequest result | ngx_http_auth_request_module |
Auto Lib | Reuse pre-compiled/installed versions of OpenSSL, PCRE and Zlib | simplresty/ngx_auto_lib |
AWS Auth | Generate security headers for GET requests to Amazon S3 | anomalizer/ngx_aws_auth |
Backtrace | A NGINX module to dump backtrace case a worker process exits abnormally | alibaba/nginx-backtrace |
Brotli | Serves dynamically or statically compressed responses with brotli | google/ngx_brotli |
Cache Purge | Adds ability to purge content from FastCGI, proxy, and uWSGI caches | FRiCKLE/ngx_cache_purge |
circle_gif |
Generates simple circle images with colors/size specified in the URL | evanmiller/nginx_circle_gif |
clojure |
A module for embedding Clojure, Java, and Groovy programs | nginx-clojure/nginx-clojure |
Cookie Flag | Set the flags "HttpOnly", "secure" and "SameSite" for cookies | AirisX/nginx_cookie_flag_module , cookie-flag |
concat |
Concatenates files in a given context | alibaba/nginx-http-concat |
consistent_hash |
Select backend based on Consistent hash ring | replay/ngx_http_consistent_hash |
Development Kit | An extension to the core functionality of NGINX | simplresty/ngx_devel_kit |
domain_resolve |
An asynchronous domain name resolution module for NGINX upstream | nicholaschiasson/ngx_upstream_jdomain |
HTTP Drizzle | Make NGINX talk directly to MySQL or Drizzle database servers | openresty/drizzle-nginx-module |
Dynamic etags | NGINX module for etags on dynamic content | kali/nginx-dynamic-etags |
Dynamic Upstream | Update upstreams' config by restful interface | yzprofile/ngx_http_dyups_module |
Dynamic limit | Dynamically lock IP and release it periodically | limithit/ngx_dynamic_limit_req_module |
Dynamic limit token | Generate token according to cookie | limithit/ngx_cookie_limit_req_module |
HTTP Echo | Provides familiar shell-style commands to NGINX HTTP servers | openresty/echo-nginx-module |
Stream Echo | Provides familiar shell-style commands to NGINX stream servers | openresty/stream-echo-nginx-module |
Elasticsearch client | Elasticsearch client in nginx proxy for multiple elasticsearch server | Taymindis/nginx-elastic-client |
Encrypted Session | Encrypt NGINX variables for light-weight session-based authentication | openresty/encrypted-session-nginx-module |
Enhanced Memcached | Repackaging of the standard memcached module to add features | bpaquet/ngx_http_enhanced_memcached_module |
Eval | A module for evaluating memcached or proxy response into variable | vkholodkov/nginx-eval-module |
Eval (OpenResty's fork) | Captures arbitrary subrequests' responses into custom NGINX variables | openresty/nginx-eval-module |
Execute | Commands remotely and return results | limithit/NginxExecute |
EY Balancer | Provides a request queue for limiting concurrent requests | ezmobius/nginx-ey-balancer |
fair_balancer |
Distributes incoming requests to least-busy servers | gnosek/nginx-upstream-fair |
fancy_index |
Like the built-in autoindex module, but fancier | aperezdc/ngx-fancyindex |
foot_filter |
Implements a body filter that adds a given string to the page footer | alibaba/nginx-http-footer-filter |
fcgi_function |
c/c++ service function handler which built for NGINX fastcgi | Taymindis/fcgi-function |
Footer If Filter | Applies a footer if a response meets a specified condition | flygoast/ngx_http_footer_if_filter/ |
form_input |
Parses HTTP POST request bodies and saves results to NGINX variables | calio/form-input-nginx-module |
GeoIP2 | City and country code lookups via the MaxMind GeoIP2 API | leev/ngx_http_geoip2_module , geoip2 |
GridFS | NGINX module for serving files from MongoDB's GridFS | mdirolf/nginx-gridfs |
groovy_handler |
A module for embedding Clojure, Java, and Groovy programs | nginx-clojure/nginx-clojure |
Haskell | Binding Haskell code in configuration files for great good! | lyokha/nginx-haskell-module |
Headers More | Set and clear input and output headers... more than "add"! | openresty/headers-more-nginx-module , headers-more |
healthcheck |
Health check HTTP servers inside an upstream | cep21/healthcheck_nginx_upstreams |
traffic_accounting |
Realtime traffic and status code monitoring (HTTP + Stream) | Lax/traffic-accounting-nginx-module |
HTTP Iconv | Converts character encodings | calio/iconv-nginx-module |
Immutable | Setting immutable caching on static assets | GetPageSpeed/ngx_immutable |
Internal Redirect | A NGINX module for internal redirection | flygoast/ngx_http_internal_redirect/ |
IP2Location | Identifies the country name/code of an IP address | chrislim2888/ip2location-nginx |
ipscrub | Anonymizes IP addresses for logging | masonicboom/ipscrub |
java_handler |
A module for embedding Clojure, Java, and Groovy programs | nginx-clojure/nginx-clojure |
JavaScript | Embedding SpiderMonkey, a full port of Perl module, and more | peter-leonov/ngx_http_js_module#readme |
ketama_chash |
Provides upstream load distribution by hashing a configurable variable | flygoast/ngx_http_upstream_ketama_chash/releases/ |
LDAP Auth | LDAP module which supports authentication against multiple LDAP servers | kvspb/nginx-auth-ldap |
Limit Upload Rate | Limit the transmission rate of request body from a client | cfsego/limit_upload_rate |
Limit Upstream Connection | Limits the maximum connections to each server in a upstream | cfsego/nginx-limit-upstream/ |
Lock Free Queue | enqueue/dequeue across multiple threads and workers without any lock | Taymindis/ngx_lfqueue |
Lock Free Stack | push/pop across multiple threads and workers without any lock | Taymindis/ngx_lfstack |
Log If | Log the requests only when given conditions are met | cfsego/ngx_log_if/ |
log_zmq |
Log the requests via ZeroMQ | alticelabs/nginx-log-zmq |
Lower Upper Case | Provides upper/lowercase string functions in NGINX config files | replay/ngx_http_lower_upper_case |
HTTP Lua | Embed the power of Lua into NGINX HTTP servers (OpenResty Official) | openresty/lua-nginx-module , lua |
Stream Lua | Embed the power of Lua into NGINX TCP servers (OpenResty Official) | openresty/stream-lua-nginx-module |
Luafile | Embed the power of Lua into NGINX | alacner/nginx_lua_module |
HTTP Lua Upstream | Make Nginx http upstream configurations scriptable by Lua | openresty/lua-upstream-nginx-module |
MD5 Filter | Returns the MD5 sum of content that would've otherwise been served | kainswor/nginx_md5_filter |
HTTP Memc | Extension of the standard memcached module | openresty/memc-nginx-module |
ModJPEG | Add overlays and logos to JPEGs on-the-fly without degrading the quality | ioppermann/modjpeg-nginx |
ModSecurity | Web application firewall | spiderlabs/modsecurity/ |
Mogilefs | Implements a MogileFS client | Download |
Mongo | Upstream module for direct communication with MongoDB | simplresty/ngx_mongo |
mp4_streaming |
Seeks time within H.264/MP4 files if a "start" parameter is in the URL | Download |
mruby | Embedded mruby script language for nginx-module | matsumotory/ngx_mruby |
Nchan |
Pubsub server for Websockets, Long-Poll, EventSource etc. | slact/nchan |
Naxsi | Web Application Firewall for NGINX | nbs-system/naxsi |
nginx-c-function | It is a NGINX module that allow you to link your .so(c/c++) application | Taymindis/nginx-c-function |
nginx-ip-blocker | An efficient shared memory IP blocking system for nginx. | tmthrgd/nginx-ip-blocker |
Notice | Serve static file to POST requests | kr/nginx-notice |
OCSP proxy | OCSP processing module designed for response caching | kyprizel/nginx_ocsp_proxy-module |
OpenSSL Version | OpenSSL minimum version constraints in configuration | PennockTech/nginx-openssl-version |
ssl_status |
OpenSSL status counters (SSL_CTX_sess*) | andreydomas/ngx_http_ssl_status_module |
owner_match |
Provides a simple file owner-based access control | Download |
PageSpeed | Rewrites webpages and associated assets to reduce latency and bandwidth | pagespeed/ngx_pagespeed |
Passenger | NGINX-based application server for Ruby, Node.js and Python apps | Download, passenger-open-source |
phoenix |
An NGINX proxy that has improved stability and effective resiliency against man-in-the-middle attacks coming from network. | R6-Security-Phoenix/mod-nginx-phoenix |
PHP | Embedded php script language for nginx-module | rryqszq4/ngx_php |
PHP Session Parser | Extract values that are stored in a serialized PHP session | replay/ngx_http_php_session |
PHP-Memache Standard Hash | Load balancer that imitates the PHP-Memcache standard hash's behaviour | replay/ngx_http_php_memcache_standard_balancer |
POST authentication | Authentication and authorization via POST request and PAM | veruu/ngx_form_auth |
Postgres | Allows NGINX to communicate directly with PostgreSQL database | Download |
Pubcookie | Adds Pubcookie-based cross-site authentication method to NGINX | ivandeex/pubcookie |
push_stream |
Turns NGINX into an adept stream HTTP Push server | wandenberg/nginx-push-stream-module |
rdns |
Makes a reverse DNS lookup and provides control of incoming hostname | flant/nginx-http-rdns |
RDS CSV | Helps ngx_drizzle, ngx_postgres, and others emit Comma-Separated Values | openresty/rds-csv-nginx-module |
RDS JSON | Helps ngx_drizzle, ngx_postgres, and others emit JSON data | openresty/rds-json-nginx-module |
redis |
Redis support module | Download |
HTTP Redis2 | HTTP Upstream module for the full Redis 2.0 protocol | openresty/redis2-nginx-module |
HTTP Tarantool | HTTP Upstream module for communicate with Tarantool DB | tarantool/nginx_upstream_module |
redirection.io | Embeds the redirect manager and SEO-optimizer "redirection.io" in NGINX | redirectionio/libnginx-mod-redirectionio |
Replace Filter | Performs regular expression substitutions on response bodies | openresty/replace-filter-nginx-module |
Roboo | HTTP Robot Mitigator that integrates easily with NGINX | yuri-gushin/Roboo/downloads |
rrd_graph |
This module provides an HTTP interface to RRDtool's graphing facilities | evanmiller/mod_rrd_graph |
RTMP | RTMP protocol support. Live streaming and video on demand | arut/nginx-rtmp-module |
RTMPT module | Proxy RTMP packages using stadard HTTP requests | kwojtek/nginx-rtmpt-proxy-module |
Sass | Compiles SASS files in NGINX before sending the response | mneudert/sass-nginx-module |
secure_download |
Create expiring links | replay/ngx_http_secure_download |
Security Headers | Adds security HTTP headers like X-Content-Type-Options | GetPageSpeed/ngx_security_headers |
Select Lang | Chooses a suitable language from key-values and set it in the variable | sndyuk/nginx_select_lang_module |
Selective Cache Purge | A cache purge module that allows GLOB expressions like .jpg or /test | wandenberg/nginx-selective-cache-purge-module |
Set CConv | Conversion between Simplified and Traditional Chinese at rewrite phase | liseen/set-cconv-nginx-module |
Set Hash | Set a variable to hash functions, including MD5, SHA1 and Murmurhash 2 | simplresty/ngx_http_set_hash |
Set Lang | Set a variable to indicate the language based on a variety of sources | simplresty/ngx_http_set_lang/downloads |
HTTP Set Misc | Various set_xxx directives added to NGINX's rewrite module | openresty/set-misc-nginx-module , set-misc |
sFlow | Operational performance monitoring with standard sFlow protocol | Download |
Shibboleth Auth | Perform authorization based on subrequest to Shibboleth FastCGI app | nginx-shib/nginx-http-shibboleth |
slice |
NGINX module for serving a file in slices (reverse byte-range) | alibaba/nginx-http-slice |
SlowFS Cache | Adds ability to cache static files | Download |
SmallLight | Dynamic Image Transformation Module For NGINX | cubicdaiya/ngx_small_light |
SOCKS | SOCKS5 proxy module for NGINX | dannote/socks-nginx-module |
Sorted Querystring | Expose a variable with the parameters ordered to be used as a cache_key | wandenberg/nginx-sorted-querystring-module |
Sphinx | NGINX upstream module for Sphinx 2.x | reeteshranjan/sphinx2-nginx-module |
SPNEGO | Support for SPNEGO/gssapi in NGINX | stnoonan/spnego-http-auth-nginx-module |
HTTP SRCache | Transparent subrequest-based caching layout for NGINX locations | openresty/srcache-nginx-module |
SSSD info | Retrieves and exposes additional user attributes from SSSD | veruu/ngx_sssd_info |
Static etags | Generates etags for static content | mikewest/nginx-static-etags |
Statsd | Adds the ability for NGINX to interacting with Statsd | zebrafishlabs/nginx-statsd |
Sticky upstream | Adds an upstream server persistance using cookies | nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz |
Stomp Messaging Protocol | A STOMP upstream module on nginx, send http to any AMQ which has stomp | Taymindis/ngx-stomp |
STS | A stream traffic status module | vozlt/nginx-module-sts |
Subrange | Split one big HTTP/Range request to multiple subrange requesets | Qihoo360/ngx_http_subrange_module |
substitutions |
Performs regular expression and string substitutions on response bodies | yaoweibin/ngx_http_substitutions_filter_module , http-substitutions-filter |
Summarizer | An upstream module for Summarizer 1.0 | reeteshranjan/summarizer-nginx-module |
Supervisord | Communicate with supervisord and manage backends on-demand | Download |
Sync Upstreams | Syncing upstreams from etcd or consul, needn't reload nginx(HTTP Module) | weibocom/nginx-upsync-module |
Sync Upstreams | Syncing upstreams from etcd or consul, needn't reload nginx(TCP Module) | xiaokai-wang/nginx-stream-upsync-module |
SysGuard | A module to protect the system against too high load | vozlt/nginx-module-sysguard |
TCP Proxy | TCP proxy with NGINX, includes health check and status monitor | yaoweibin/nginx_tcp_proxy_module |
TestCookie module | Simple robot (DDoS) mitigation module | kyprizel/testcookie-nginx-module |
transcode |
NGINX module for media transcoding | HiSunzhenliang/nginx-transcode-module |
Types Filter | Changes the Content-Type output header on specified conditions | flygoast/ngx_http_types_filter |
UnTar | serve static file content from tar archives | ajax16384/ngx_http_untar_module |
UnZip | serve file directly from the archives | youzee/nginx-unzip-module |
upload |
Handles file uploads using multipart/form-data encoding (RFC 1867) | vkholodkov/nginx-upload-module |
upload_progress |
Tracks and reports upload progress | masterzen/nginx-upload-progress-module |
Url | A module to convert uri to user-defined encoding | vozlt/nginx-module-url |
user_agent |
A more powerful module than the native BrowserModule | alibaba/nginx-http-user-agent |
Video Thumb Extractor | NGINX module to extract thumbs from a video file | wandenberg/nginx-video-thumbextractor-module |
VOD | Repackage MP4 files for streaming in HLS, HDS, MSS and DASH | kaltura/nginx-vod-module |
VTS | A virtual host and upstream traffic status module | vozlt/nginx-module-vts |
Webp | Webp wrapper to convert files on the fly | vladbondarenko/ngx_webp |
XSS | Native support for cross-site scripting (XSS) | openresty/xss-nginx-module |
zip |
Assemble ZIP archives on the fly | evanmiller/mod_zip |
ngx_waf | Handy, High performance, ModSecurity compatible Nginx firewall module | ADD-SP/ngx_waf |
ngx_sqlite | Allow accessing SQLite database directly from HTTP requests | rryqszq4/ngx_sqlite |
ngx_casbin | A powerful authorization module with casbin supports flexible policy | casbin-cpp/nginx-casbin-module |
Markdown filter | Render markdown files as html on-the-fly | ukarim/ngx_markdown_filter_module |
accept_language audio_track auth_digest circle_gif clojure concat consistent_hash domain_resolve drizzle echo fair_balancer fancy_index fcgi_function foot_filter form_input groovy_handler headers_more healthcheck iconv java_handler ketama_chash lua log_zmq memc mp4_streaming Nchan owner_match phoenix push_stream rdns redis redis2 tarantool transcode rrd_graph secure_download set_misc slice sr_cache substitutions ssl_status traffic_accounting upload upload_progress user_agent zip